package unq.uis.robots.ui;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.layout.VerticalLayout;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Label;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.widgets.tables.Column;
import org.uqbar.arena.widgets.tables.Table;
import org.uqbar.arena.windows.Dialog;
import org.uqbar.arena.windows.WindowOwner;

import unq.uis.robots.applicationsModels.RobotVista;
import unq.uis.robots.model.MejoraDeRobot;


public class MejorarRobotWindow extends Dialog<RobotVista>  {


	public MejorarRobotWindow(WindowOwner owner, RobotVista robotVista) {
		super(owner, robotVista);
	}

	private static final long serialVersionUID = 1L;

	@Override
	protected void createFormPanel(Panel mainPanel) {
		this.setTitle("Mejorar");
		Panel panel = new Panel(mainPanel);
		panel.setLayout(new VerticalLayout());
		
		new Label(panel).setText("Poder de robot " + this.getModelObject().getRobot().getNombre() + ": " + this.getModelObject().getRobot().getPoderTotal());
		new Label(panel).setText("Dinero disponible: $" + this.getModelObject().getRobot().getDuenio().getDinero());
		
		this.crearTablaDeMejorasDisponibles(mainPanel);
	}

	public void crearTablaDeMejorasDisponibles(Panel mainPanel) {
		Panel panel = new Panel(mainPanel);
		
		Table<MejoraDeRobot> table = new Table<MejoraDeRobot>(panel, MejoraDeRobot.class);
		table.bindItemsToProperty(RobotVista.MEJORASDISPONIBLES);
		
		table.bindSelection(RobotVista.MEJORASELECCIONADA);
		
		Column<MejoraDeRobot> descripcionColumn = new Column<MejoraDeRobot>(table);
		descripcionColumn.setTitle("Descripcion");
		descripcionColumn.setFixedSize(250);
		descripcionColumn.bindContentsToProperty(MejoraDeRobot.DESCRIPCION);

		Column<MejoraDeRobot> poderColumn = new Column<MejoraDeRobot>(table);
		poderColumn.setTitle("Mejora de poder total");
		poderColumn.setFixedSize(175);
		poderColumn.bindContentsToProperty(MejoraDeRobot.PUNTOSDEPODER);

		Column<MejoraDeRobot> precioColumn = new Column<MejoraDeRobot>(table);
		precioColumn.setTitle("Precio");
		precioColumn.setFixedSize(100);
		precioColumn.bindContentsToProperty(MejoraDeRobot.PRECIO);
		
		table.setWidth(600);
		table.setHeigth(150);
		
	}
	
	@Override
	protected void addActions(Panel actions) {
		new Button(actions)
			.setCaption("Aceptar")
			.onClick(new MessageSend(this, "accept"))
			.setAsDefault()
			.disableOnError();

		new Button(actions)
			.setCaption("Cancelar")
			.onClick(new MessageSend(this, "cancel"));
	}

}
